package dp;
import java.io.*;
import java.util.*;
public class _16_kama_57_爬楼梯进阶版 {
	static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	static int n,m;
	static StringTokenizer st;
	static int dp[];
	public static void main(String[] args) throws IOException {
		st = new StringTokenizer(br.readLine());
		n = Integer.parseInt(st.nextToken()); // 一共有n个台阶能到达楼顶
		m = Integer.parseInt(st.nextToken()); // 每次可以爬1-m个台阶
		dp = new int[n+1];
		dp[0] = 1;
		// 完全背包全排列(先遍历背包再遍历物品
		for(int j = 1; j <= n; j++) { // 容量
			for(int i = 1; i <= m; i++) { // 物品
				if(j >= i) {
					dp[j] += dp[j-i];
				}
			}
		}
		
		System.out.println(dp[n]);
		
	}
	
}
